package com.ruoyi.inspection.service;


import com.ruoyi.inspection.domain.GovernCheckTaskPlanItem;
import com.ruoyi.inspection.domain.vo.GovernCheckTaskPlanItemVo;

import java.util.List;

/**
 * 专项任务计划检查项表(GovernCheckTaskPlanItem)表服务接口
 *
 * @author makejava
 * @since 2024-06-19 16:16:21
 */
public interface GovernCheckTaskPlanItemService {

    /**
     * 查询检查详情
     * @param governTaskPlanItemId
     * @return
     */
    public GovernCheckTaskPlanItemVo selectTaskPlanItemDetail(Long governTaskPlanItemId);

    public GovernCheckTaskPlanItemVo getTaskDetail(Long governTaskPlanItemId);
    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    GovernCheckTaskPlanItem queryById(Long id);

    /**
     * 分页查询
     *
     * @param governCheckTaskPlanItem 筛选条件
     * @return 查询结果
     */
    List<GovernCheckTaskPlanItem> queryByPage(GovernCheckTaskPlanItem governCheckTaskPlanItem);

    /**
     * 排查任务
     * @param governCheckTaskPlanItem
     * @return
     */
//    public List<GovernCheckTaskPlanItem> queryTaskList(GovernCheckTaskPlanItem governCheckTaskPlanItem);

    /**
     * 查询
     *
     * @param governTaskPlanId 筛选条件
     * @return 查询结果
     */
    public List<GovernCheckTaskPlanItemVo> queryByTaskPlanId(Long governTaskPlanId);

    /**
     * 分配检查人员
     *
     * @param list 检查人员
     * @return 查询结果
     */
    public String allocateCheckUser2(List<GovernCheckTaskPlanItemVo> list, String loginUser);

    /**
     * 分配检查人员
     *
     * @param list 检查人员
     * @return 查询结果
     */
    public String allocateCheckUser(List<GovernCheckTaskPlanItemVo> list, String loginUser);

    /**
     * 新增数据
     *
     * @param governCheckTaskPlanItem 实例对象
     * @return 实例对象
     */
    GovernCheckTaskPlanItem insert(GovernCheckTaskPlanItem governCheckTaskPlanItem);

    public int addCheckTaskPlanItems(GovernCheckTaskPlanItem governCheckTaskPlanItem, String userName);

    /**
     * 修改数据
     *
     * @param governCheckTaskPlanItem 实例对象
     * @return 实例对象
     */
    GovernCheckTaskPlanItem update(GovernCheckTaskPlanItem governCheckTaskPlanItem);

    /**
     * 重置所有任务项的检查人  BY 任务计划ID
     *
     * @param governTaskPlanId 任务计划ID
     * @return
     */
    int resetCheckUser(Long governTaskPlanId);

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    boolean deleteById(Long id);

    /**
     * 删除任务计划下的item
     */
    public int deleteByGovernTaskPlanId(Long governTaskPlanId);
}
